라마를 이용하여 R 도움말 만드는 법

Author

R 패키지 도우미

Published

Invalid Date

R {pal} 패키지 사용자 매뉴얼

1. 개요

{pal} 패키지는 R 프로그래밍을 위한 AI 기반 assistant를 생성하고 관리할 수 있게 해주는 도구입니다. 이 패키지를 사용하면 코드 설명, 생성, 최적화 등 다양한 작업을 자동화할 수 있습니다.

2. 설치 요구사항

2.1 필수 소프트웨어

  • R (최신 버전 권장)
  • RStudio (권장)
  • Ollama (로컬 LLM 실행을 위한 필수 프로그램)

2.2 패키지 설치

# pak 패키지 설치
install.packages("pak")

# pal 패키지 설치
pak::pak("simonpcouch/pal")

# ollamar 패키지 설치
install.packages("ollamar")

3. 초기 설정

3.1 Ollama 모델 설치

library(ollamar)
pull("llama2")  # 기본 모델 설치

3.2 기본 설정

library(pal)

# Ollama 설정
options(
  .pal_fn = "chat_ollama",
  .pal_args = list(model = "llama2")
)

4. Assistant 생성 및 관리

4.1 새로운 Assistant 생성

prompt_new(
  role = "explainer",    # assistant 이름 (영문자와 숫자만 사용)
  interface = "prefix"   # prefix, suffix, replace 중 선택
)

4.2 Assistant 설정 파일 작성 예시

You are a helpful assistant designed to explain R code in Korean. 
Your task is to analyze the given R code and provide a clear, concise explanation.

Add comments using # at the beginning of each line.
Keep explanations brief but informative.

For example, given:
mtcars %>%
  group_by(cyl) %>%
  summarize(avg_mpg = mean(mpg))

Return:
# mtcars 데이터를 실린더(cyl) 기준으로 그룹화하고
# 각 그룹의 평균 연비(mpg)를 계산합니다

4.3 Assistant 로드

directory_load()

5. 사용 방법

5.1 RStudio에서 사용

  1. 코드를 선택
  2. Tools > Addins > Pal 선택 (또는 단축키 설정)
  3. 생성한 assistant 선택

5.2 단축키 설정

  1. Tools > Modify Keyboard Shortcuts 선택
  2. “Pal”로 검색
  3. 원하는 단축키 설정 (예: Cmd/Ctrl + Shift + P)

6. 주의사항

  1. role 이름은 영문자와 숫자만 사용 가능
  2. assistant 설정 파일 끝에 빈 줄 필요
  3. Ollama 애플리케이션이 실행 중이어야 함
  4. 컴퓨터 사양에 따라 적절한 모델 선택
    • 고사양: llama2
    • 저사양: llama2:7b-chat

7. 사용 예제

7.1 코드 설명 Assistant

# Assistant 생성
prompt_new(
  role = "explainer",
  interface = "prefix"
)

# 테스트 코드
iris %>%
  filter(Species == "setosa") %>%
  select(Sepal.Length, Sepal.Width)

# 생성될 설명
# 이리스 자료에서 setosa 종의 데이터만 필터링하고
# Sepal.Length와 Sepal.Width 변수만 선택합니다

7.2 코드 생성 Assistant

# Assistant 생성
prompt_new(
  role = "coder",
  interface = "suffix"
)

# 입력 텍스트
# iris 데이터에서 각 종별 Sepal.Length의 평균, 최댓값, 최솟값을 계산하고
# 평균 길이 기준으로 내림차순 정렬해주세요

# 생성될 코드
iris %>%
  group_by(Species) %>%
  summarise(
    mean_length = mean(Sepal.Length),
    max_length = max(Sepal.Length),
    min_length = min(Sepal.Length)
  ) %>%
  arrange(desc(mean_length))

8. 문제 해결

8.1 일반적인 오류

  1. “model not found” 오류
    • 해결: Ollama에서 모델 설치 확인
    • ollamar::pull("llama2")로 재설치
  2. “role must be a single string…” 오류
    • 해결: role 이름에 특수문자 제거
  3. “불완전한 마지막 행” 경고
    • 해결: 설정 파일 끝에 빈 줄 추가

8.2 성능 관련 팁

  1. 첫 실행은 모델 로딩으로 인해 느릴 수 있음
  2. 메모리 부족 시 더 작은 모델 사용
  3. GPU 가속 지원 시 자동으로 활용됨

8.3 assistant의 설정 확인

prompt_edit("assistant_name")  # 예: prompt_edit("roxygen")

9. 추가 리소스

  • Ollama 공식 문서: https://ollama.ai/docs
  • pal 패키지 GitHub: https://github.com/simonpcouch/pal

10. 라이선스

이 매뉴얼은 MIT 라이선스 하에 자유롭게 사용, 수정, 배포가 가능합니다.